package com.liuyucheng.designpattern.代理模式.dynamic.cglib;

/**
 * CGLib采用了非常底层的字节码技术，其原理是通过字节码技术为一个类创建子类，并在子类中采用方法拦截的技术拦截所有父类方法的调用，顺势织入横切逻辑。
 * （利用ASM开源包，对代理对象类的class文件加载进来，通过修改其字节码生成子类来处理）
 *
 * 注意：因为CGLIB是通过继承目标类来重写其方法来实现的，故而如果是final和private方法则无法被重写，也就是无法被代理。
 */
public class TestCglib {


    public static void main(String[] args) {
        ProxyCglib proxy = new ProxyCglib();
        Host host = (Host) proxy.getProxy(Host.class);
        host.rent();
    }
}
